home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 22 / Cream of the Crop 22.iso / os2 / bltc127.zip / BLTXMPLS.ZIP / BULLET2.H < prev    next >
Text File  |  1995-02-02  |  7KB  |  345 lines

  1.  
  2. /* BULLET2.H   3-Feb-95-chh
  3.  *
  4.  *  Bullet/2 header for 32-bit and 16-bit C/C++
  5.  *
  6.  *  16-bit OS/2 requires defining __Bullet16 prior to this file, as in
  7.  *
  8.  *    #define __Bullet16     
  9.  *    #include "bullet2.h"
  10.  *
  11.  *  otherwise, BULLET32() for 32-bit is used
  12.  */
  13.  
  14. #ifndef __BULLET_H
  15. #define __BULLET_H
  16.  
  17. #pragma pack(1)
  18.  
  19. /* the following are assumed defined in OS2DEF.H
  20.  *
  21.  * #define VOID void
  22.  * #define SHORT short
  23.  * #define LONG long
  24.  *
  25.  * typedef unsigned char BYTE;
  26.  * typedef unsigned short USHORT;
  27.  * typedef unsigned long ULONG;
  28.  * typedef unsigned char *PSZ;
  29.  * typedef VOID *PVOID;
  30.  *
  31.  * For 16-bit OS/2:
  32.  *    typedef unsigned short APIRET16;
  33.  *    #define APIRET int
  34.  *    #define APIENTRY far pascal
  35.  *    and add "far" to all pointers (e.g., far *PSZ, far *PVOID)
  36.  *
  37.  * For 32-bit OS/2:
  38.  *    typedef unsigned long APIRET;
  39.  *    #define APIENTRY _System
  40.  *    (_System is similar to C calling convention, but name is upper-
  41.  *     cased -- however, I can't find any definition of _System, per se.)
  42.  */
  43.  
  44. #ifdef __cplusplus
  45.    extern "C" {
  46. #endif
  47.  
  48. #ifdef __Bullet16
  49.    APIRET APIENTRY BULLET(PVOID datapack);
  50. #else
  51.    APIRET APIENTRY BULLET32(PVOID datapack);
  52. #endif
  53.  
  54. #ifdef __cplusplus
  55.    }
  56. #endif
  57.  
  58. #define INITXB          0  /* system */
  59. #define EXITXB          1
  60. #define ATEXITXB        2
  61. #define MEMORYXB        3
  62. #define BREAKXB         4
  63. #define BACKUPFILEXB    5
  64. #define STATHANDLEXB    6
  65. #define GETEXTERRORXB   7
  66. #define DVMONCXB        9
  67.  
  68. #define CREATEDXB       10 /* data control mid-level */
  69. #define OPENDXB         11
  70. #define CLOSEDXB        12
  71. #define STATDXB         13
  72. #define READDHXB        14
  73. #define FLUSHDHXB       15
  74. #define COPYDHXB        16
  75. #define ZAPDHXB         17
  76.  
  77. #define CREATEKXB       20 /* key control mid-level */
  78. #define OPENKXB         21
  79. #define CLOSEKXB        22
  80. #define STATKXB         23
  81. #define READKHXB        24
  82. #define FLUSHKHXB       25
  83. #define COPYKHXB        26
  84. #define ZAPKHXB         27
  85.  
  86. #define GETDESCRIPTORXB 30 /* data access mid-level */
  87. #define GETRECORDXB     31
  88. #define ADDRECORDXB     32
  89. #define UPDATERECORDXB  33
  90. #define DELETERECORDXB  34
  91. #define UNDELETERECORDXB 35
  92. #define PACKRECORDSXB   36
  93.  
  94. #define FIRSTKEYXB      40 /* key access mid-level */
  95. #define EQUALKEYXB      41
  96. #define NEXTKEYXB       42
  97. #define PREVKEYXB       43
  98. #define LASTKEYXB       44
  99. #define STOREKEYXB      45
  100. #define DELETEKEYXB     46
  101. #define BUILDKEYXB      47
  102. #define CURRENTKEYXB    48
  103.  
  104. #define GETFIRSTXB      60 /* key and data access high-level */
  105. #define GETEQUALXB      61
  106. #define GETNEXTXB       62
  107. #define GETPREVXB       63
  108. #define GETLASTXB       64
  109. #define INSERTXB        65
  110. #define UPDATEXB        66
  111. #define REINDEXXB       67
  112.  
  113. #define LOCKXB          80 /* network control */
  114. #define UNLOCKXB        81
  115. #define LOCKKEYXB       82
  116. #define UNLOCKKEYXB     83
  117. #define LOCKDATAXB      84
  118. #define UNLOCKDATAXB    85
  119. #define DRIVEREMOTEXB   86
  120. #define FILEREMOTEXB    87
  121. #define SETRETRIESXB    88
  122.  
  123. #define DELETEFILEDOS   100/* DOS file I/O low-level */
  124. #define RENAMEFILEDOS   101
  125. #define CREATEFILEDOS   102
  126. #define OPENFILEDOS     103
  127. #define SEEKFILEDOS     104
  128. #define READFILEDOS     105
  129. #define WRITEFILEDOS    106
  130. #define CLOSEFILEDOS    107
  131. #define ACCESSFILEDOS   108
  132. #define EXPANDFILEDOS   109
  133. #define MAKEDIRDOS      110
  134.  
  135. #define cUNIQUE         1  /* key type flags */
  136. #define cCHAR           2
  137. #define cINTEGER        16
  138. #define cLONG           32
  139. #define cNLS            0x4000  /* note: cNLS is set by BULLET */
  140. #define cSIGNED         0x8000
  141.  
  142. #define READONLY        0  /* do NOT use O_RDONLY,O_WRONLY,O_RDWR */
  143. #define WRITEONLY       1
  144. #define READWRITE       2
  145.  
  146. #define COMPAT          0X0000  /* okay to use SH_DENYRW, etc. */
  147. #define DENYREADWRITE   0x0010  /* or O_DENYREADWRITE, etc.    */
  148. #define DENYWRITE       0x0020
  149. #define DENYREAD        0x0030
  150. #define DENYNONE        0x0040
  151. #define NOINHERIT       0x0080
  152. /* ...locality bits okay */
  153.  
  154. struct AccessPack {
  155. USHORT  func;
  156. USHORT  stat;
  157. USHORT  handle;
  158. LONG    recNo;  /* signed */
  159. PVOID   recPtr;
  160. PVOID   keyPtr;
  161. PVOID   nextPtr;
  162. };
  163.  
  164. struct BreakPack {
  165. USHORT  func;
  166. USHORT  stat;
  167. USHORT  mode;
  168. };
  169.  
  170. struct CopyPack {
  171. USHORT  func;
  172. USHORT  stat;
  173. USHORT  handle;
  174. PSZ     filenamePtr;
  175. };
  176.  
  177. struct CreateDataPack {
  178. USHORT  func;
  179. USHORT  stat;
  180. PSZ     filenamePtr;
  181. USHORT  noFields;
  182. PVOID   fieldListPtr;
  183. USHORT  fileID;
  184. };
  185.  
  186. struct CreateKeyPack {
  187. USHORT  func;
  188. USHORT  stat;
  189. PSZ     filenamePtr;
  190. PSZ     keyExpPtr;
  191. USHORT  xbLink;
  192. USHORT  keyFlags;
  193. SHORT   codePageID;   /* allow -1 */
  194. SHORT   countryCode;
  195. PVOID   collatePtr;
  196. };
  197.  
  198. struct FieldDescType {
  199. BYTE    fieldName[11];
  200. BYTE    fieldType;
  201. LONG    fieldDA;
  202. BYTE    fieldLen;
  203. BYTE    fieldDC;
  204. LONG    fieldRez;
  205. BYTE    filler[10];
  206. };
  207.  
  208. struct DescriptorPack {
  209. USHORT  func;
  210. USHORT  stat;
  211. USHORT  handle;
  212. USHORT  fieldNumber;
  213. struct  FieldDescType FD;
  214. };
  215.  
  216. struct DosFilePack {
  217. USHORT  func;
  218. USHORT  stat;
  219. PSZ     filenamePtr;
  220. USHORT  handle;
  221. USHORT  asMode;
  222. USHORT  bytes;
  223. LONG    seekOffset;
  224. USHORT  method;
  225. PVOID   bufferPtr;
  226. USHORT  attr;
  227. PSZ     newNamePtr;
  228. };
  229.  
  230. struct DVmonPack {
  231. USHORT  func;
  232. USHORT  stat;
  233. USHORT  mode;
  234. USHORT  handle;
  235. USHORT  vs;
  236. };
  237.  
  238. struct ExitPack {
  239. USHORT  func;
  240. USHORT  stat;
  241. };
  242.  
  243. struct HandlePack {
  244. USHORT  func;
  245. USHORT  stat;
  246. USHORT  handle;
  247. };
  248.  
  249. struct InitPack {
  250. USHORT  func;
  251. USHORT  stat;
  252. USHORT  JFTmode;
  253. USHORT  DOSver;
  254. USHORT  version;
  255. USHORT  OSversion;
  256. ULONG   exitPtr;
  257. };
  258.  
  259. struct MemoryPack {
  260. USHORT  func;
  261. USHORT  stat;
  262. ULONG   memory;
  263. };
  264.  
  265. struct OpenPack {
  266. USHORT  func;
  267. USHORT  stat;
  268. USHORT  handle;
  269. PSZ     filenamePtr;
  270. USHORT  asMode;
  271. USHORT  xbLink;
  272. };
  273.  
  274. struct RemotePack {
  275. USHORT  func;
  276. USHORT  stat;
  277. USHORT  handle;
  278. USHORT  isRemote;
  279. USHORT  flags;
  280. USHORT  isShare;
  281. };
  282.  
  283. struct SetRetriesPack {
  284. USHORT  func;
  285. USHORT  stat;
  286. USHORT  mode;
  287. USHORT  pause;
  288. USHORT  retries;
  289. };
  290.  
  291. struct StatDataPack {
  292. USHORT  func;
  293. USHORT  stat;
  294. USHORT  handle;
  295. BYTE    fileType;
  296. BYTE    dirty;
  297. ULONG   recs;
  298. USHORT  recLen;
  299. USHORT  fields;
  300. BYTE    f1;
  301. BYTE    LUyear;
  302. BYTE    LUmonth;
  303. BYTE    LUday;
  304. USHORT  hereseg;
  305. BYTE    filler[10];
  306. };
  307.  
  308. struct StatKeyPack {
  309. USHORT  func;
  310. USHORT  stat;
  311. USHORT  handle;
  312. BYTE    fileType;
  313. BYTE    dirty;
  314. ULONG   keys;
  315. USHORT  keyLen;
  316. USHORT  xbLink;
  317. ULONG   xbRecNo;
  318. USHORT  hereSeg;
  319. USHORT  codePageID;
  320. USHORT  countryCode;
  321. USHORT  collateTableSize;
  322. USHORT  keyFlags;
  323. BYTE    filler[2];
  324. };
  325.  
  326. struct StatHandlePack {
  327. USHORT  func;
  328. USHORT  stat;
  329. USHORT  handle;
  330. USHORT  ID;
  331. PSZ     filenamePtr;
  332. };
  333.  
  334. struct XerrorPack {
  335. USHORT  func;
  336. USHORT  stat;
  337. USHORT  errclass;
  338. USHORT  action;
  339. USHORT  location;
  340. };
  341.  
  342. #pragma pack()
  343.  
  344. #endif /* ifndef __BULLET_H */
  345.